Last Updated: 2023-01-16

References: FLAC 8.1 User's Manual; FLAC 8.1 Theory & Background

What is FLAC?

FLAC is a finite difference platform for modeling geotechnical engineering problems. The model package comes with material models including: linear-elastic, linear elastic perfectly plastic, and modified cam clay. We will be using several of these models in the class.

FLAC is a continuum program where the model is discretized by continuous zones. The model geometry will update with calculated strains by using the large deformation mode.

FLAC uses an explicit formulation for solving problems. The explicit solution means that calculations are performed over small timesteps, where each timestep moves towards equilibrium. This is in contrast to an implicit formulation, where the problem is iterated until an equilibrium solution is found.

FLAC stands for:

What will we learn in FLAC throughout this class?

Throughout the class we will be learning about theoretical soil models. This theory will allow us to calculate increments of strain that result from stress increments applied to soil. Although we will learn how to analytically (i.e., with pencil and paper) estimate stress, strain or porewater pressures that result from loading on soil, we will also be doing the same analyses in FLAC. This will allow you to: perform numerical geotechnical analyses, examine simulated results in FLAC, and check that your numerical and analytical solutions agree.

What you'll learn

The soil is modeled as a continuum that is divided into quadrilateral zones that are defined by 4 gridpoints.

Example quiz for model geometry

Below I have put together some example questions. You can follow this link to answer the questions and check your answers.

FLAC Geometry Quiz

FLAC Graphic User Interface showing a model grid of 5 x 14 zones. The model coordinates are shown along the x and y axes.

Identify the coordinates for the specified gridpoint in the above model:

x(i = 2, j = 2) = _________________ x( i = 3, j = 1) = ________________

y(i = 2, j = 2) = _________________ y(i = 3, j = 1) = _________________

Label the model zones:

FLAC computation is performed over a calculation cycle. Each calculation cycle is carried out over one time step. Each time step/calculation cycle attempts to bring the model closer to equilibrium.

Calculate unbalanced gridpoint forces

The stresses in each zone are used to estimate equivalent forces at each gridpoint.

When the model is in equilibrium, the gridpoint forces are balanced. This step estimates the unbalanced gridpoint forces in the x and y direction.

Calculate gridpoint acceleration from gridpoint forces

To step closer to equilibrium, the model assigns accelerations at gridpoints to counteract unbalanced forces. This uses the equation of motion:

Mass is lumped at gridpoints from the model zone's density.

Calculate strain rates from velocities

Since gridpoint accelerations are applied for a timestep (𝚫t), a finite difference approximation can be used to find velocities at each gridpoint. The gridpoint velocities relate to the strain rates in the model zones - it is assumed that there is a constant strain rate across each zone.

Ultimately, this step yields a strain increment for the zone.

Calculate stresses in each zone

Constitutive relationships relate the strain increment to a stress increment. These stress increments get added to the zone's stress at the beginning of the calculation cycle. Then the calculation cycle repeats and the model steps towards equilibrium.

Calculation cycle & timestep

This section will cover model displacement, velocity, and acceleration. All of these field variables are calculated at gridpoints. Displacement is represented by u.

Gridpoint displacement

displacement in the x direction

displacement in the y direction

Gridpoint velocity

Gridpoint acceleration

This section is going to dive a bit deeper into the mechanics of FLAC. For the most part, you won't need to know this information to use FLAC. But, as an engineer, you should understand how the model works to be an informed user.

Mixed discretization

When using FLAC, we see quadrilateral zones. These zones are actually further discretized by four overlapping, constant-strain, constant-stress, sub-triangles. The figure below shows one zone and the four overlapping sub-triangles that make up the zone.

Mixed discretization is implemented by:

Constant strain triangles

Gridpoint displacements and velocities are assumed to vary linearly across sub-triangles. Therefore, strains and strain-rates are constant in a sub-triangle.

The constant strain is achieved by assuming displacement fields are linear across a subzone:

from R. Armstrong

Since sub-triangles are constant strain, they are also constant stress.

Calculating strain from displacements

The general strain expression is:

Normal strain in the x-direction:

Normal strain in the y-direction:

Shear strain:

Calculating strain rates from displacements

The general strain rate expression is:

Normal strain rate in the x-direction:

Normal strain rate in the y-direction:

Shear strain rate:

Stresses

Stresses are assigned to the model zones based on constitutive relationships to the strain increments. FLAC estimates the horizontal, vertical and shear stresses for each sub-triangle, then averages the sub-triangle stresses to assign stresses for the whole zone. Effective stresses are calculated from total stresses and porewater pressures.